﻿/******************************************************************************
 * Name			: PacketFactory.hpp
 * Author		: 671643387
 * Date			: 2015年9月13日
 * Description	:
 *****************************************************************************/

#ifndef COMMON_PACKET_PACKETFACTORY_HPP_
#define COMMON_PACKET_PACKETFACTORY_HPP_

#include <boost/noncopyable.hpp>
#include <boost/shared_ptr.hpp>
#include <common/packet/Packet.hpp>

namespace sxr
{
    namespace common
    {
        class PacketFactory;
        typedef boost::shared_ptr<PacketFactory> PacketFactoryPtr;

        class PacketFactory : public boost::noncopyable
        {
        public:
            PacketFactory(void){}
            virtual ~PacketFactory(void){}

        public:
            virtual PacketPtr create(void) = 0;
            virtual int getId(void) = 0;
        };
    }
}

#endif /* COMMON_PACKET_PACKETFACTORY_HPP_ */
